package com.setdemo;

public class HashSetDemo1 {
    public static void main(String[] args) {
        /*
        哈希值:
        对象的整数表现形式
            1．如果没有重写hashcode方法，计算出的哈希值是不同的
            2．如果已经重写hashcode方法，不同的对象只要属性值相同，计算出的哈希值就是一样的
            3．但是在小部分情况下，不同的属性值或者不同的地址值计算出来的哈希值也有可能一样。(哈希碰撞)
         */
        //1.创建对象
        Student student1 = new Student("zhangsan", 23);
        Student student2 = new Student("zhangsan", 23);

        //2.如果没有重写hashcode方法，计算出的哈希值是不同的
        //如果已经重写hashcode方法，不同的对象只要属性值相同，计算出的哈希值就是一样的
        int code1 = student1.hashCode();
        int code2 = student2.hashCode();
        System.out.println(code1);
        System.out.println(code2);

        //3.但是在小部分情况下，不同的属性值或者不同的地址值计算出来的哈希值也有可能一样。(哈希碰撞)
        int code3 = "abc".hashCode();
        int code4 = "acD".hashCode();
        System.out.println(code3);//96354
        System.out.println(code4);//96354
    }
}
